FIG. 8 is a block diagram showing a typical example of a conventional printing system configuration, in which a host computer and a printing apparatus are communicably connected to each other.
Ordinarily, a host computer 2000 and a printing apparatus 2100 are connected by either a parallel interface or USB called a centronics interface (IEEE 1284), a serial interface such as an IEEE 1394 or a network interface such as 10BASE-T.
At the host computer 2000, application software 2001 such as a word processing program or a spreadsheet program (hereinafter referred to as an application) is run on an OS (Operating System) such as Microsoft's Windows.
Printing using such application programs is done using the functions of the graphic sub-system within several sub-systems that the OS provides from within the programs. In Windows, for example, the graphic sub-system 2002 is called a Graphics Device Interface (GDI)—here denoted by the reference numeral 2004—and controls image data processing for the display device and printing apparatus.
In order to overcome the problem of dependence, that is, the need to change or install software with each change in display device and printing apparatus, the GDI 2004 actively links modules called device drivers and processes the output of the devices and apparatuses. The device driver for the printing apparatus is called a printer driver 2005. With the printer driver 2005, it is necessary to prepare a function group called a Device Driver Interface (DDI) to be loaded into the device driver according to the performance and capabilities of the corresponding device.
The application API (Application Programming Interface) call is configured so that the DDI function group is called as appropriate by the GDI 2004 performing device driver data conversion so as to execute a given printing process. At the GDI 2004, print requests from the application 2001 are sequentially processed using the printer driver 2005.
In general terms, printer drivers can be divided into two types: image mode printer drivers, which even draw the image data format (bit map format) during output, and PDL mode printer drivers, which generate a PDL (Page Description Language) which is a command for the printing apparatus to interpret and draw.
Assume that the printer driver 2005 is a PDL mode printer driver. A PDL mode printer driver generates a PDL command with every call of the DDI function, and in this case the generated print command is sequentially and repeatedly stored as a single-page spool file 2006 by the GDI 2004. When a page worth of data is in place, the GDI 2004 interprets the PDL using the interface (I/F) 2007 and sends it to a drawing-capable printing apparatus.
The printing apparatus 2100 temporarily stores the PDL command (that is, the print command) in a buffer 2103 and analyzes it with a command analyzer 2107. The printing apparatus 2100 then uses the results of that analysis to generate intermediate data that can be processed at high speed by the printing apparatus and stores the data in the intermediate language storage area of a page memory 2106. When a page worth of intermediate data accumulates in the page memory 2106, a list structure (also called a band list or a display list) is created with each band region that is the processing unit within the printing apparatus.
The intermediate language is drawn by the hardware or software for the band memory area (hereinafter simply band memory) within the page memory 2106 in band list units.
The image data generated in the band memory is synchronized with the action of the printer engine (for example the rotation of a photosensitive drum) and converted into a video signal (a process called shipping). By using two band memories, interchangeably and repetitively, it is possible to synchronize the drawing and shipping with the printer engine operation.
However, in a PDL mode printer driver, the data taken from the DDI function is all generated as draw commands, so when issuing a large number of draw commands from the application, the drawing time can exceed the shipping time in what is called a print overrun. Accordingly, in the conventional printing apparatus, normal printing is achieved by the operation of a routine like the following:
1. Sub-close, involving the following steps
(1) When the intermediate language no longer fits in the page memory, the intermediate language data stored up to that point is drawn and compressed (using PackBits, Runlength, JBIG compression, etc.) using the band memory and retained as intermediate data (composed of all the bands relating to the drawing object).
(2) The intermediate language data that has already been drawn is deleted, increasing the page memory empty space.
(3) The intermediate language that did not fit into the page memory is stored in the newly emptied space. If an entire page fits, the compressed image data (intermediate data) re-registered in (1) is treated as one intermediate language, enabling band drawing that is synchronized with the printer engine (called synchronized band drawing).
(4) If after the above-described steps a page of intermediate language still does not fit within the memory, then process (1) is executed once again. (Previously registered compressed image data is initially drawn, on top of which new intermediate language data is drawn and the entire structure is re-compressed.)
2. Pre-band (pre-rendering), involving the following:
When intermediate language data is concentrated at a single band, drawing and printer engine operation can get out of synch. During intermediate language registration, a band deemed to assume such a state is previously drawn in a band memory previously prepared prior to the activation of the printer engine.
Such methods can provide adequate printing, but since high-speed synchronous band rendering is not possible, printing speed declines.
On the other hand, where the printer driver 2005 is an image mode type printer driver 2005, printing is accomplished by securing bit map memory space inside the printer driver 2005 in units of pages or bands, with data drawn directly to the bit map memory every time the DDI function is called.
The generated print commands are bit map data, and after a page of such data is stored as a spool file 2006 as in the PDL mode the data is sent to the printing apparatus 2100 via the I/F 2007. Thus, with the image mode type of printer driver, in order to output the final drawing results, the data size never exceeds one full page at most.
At the printing apparatus 2100, the same types of processes are performed as when a PDL is received. However, since the data sent is strictly image data, if configured to be able to accept a full page worth of image data, it will not experience the extremely slow processing like that of the PDL mode no matter what type of data is involved. In other words, the image mode printer driver can deliver steady throughput.
The foregoing advantages and disadvantages of the various printer driver modes may be summed up as follows:                PDL mode printer driver:        
Advantage: If the data fits into the printing apparatus internal memory, the driver processes are simple (=high speed), the data size to be transmitted to the printing apparatus is small and the printing apparatus can print at high speed.
Disadvantage: If a large volume of data or complex data is sent as a PDL command, there is a strong possibility that printing speed will decline drastically in printing apparatuses with limited memory resources.                image mode printer driver:        
Advantage: Since there is an upper limit to the size of the print command sent to the printing apparatus, the printing apparatus can operate at a steady speed.
Disadvantage: Even with pages that can be drawn simply (=quickly), image data in units of pages becomes print commands, so the length of time that the host computer is occupied while the printer driver operates, the print data transfer time and the processing time at the printing apparatus when processing an average page are all longer than is the case with a PDL mode printer driver.
FIG. 9 is a block diagram showing an example of a basic configuration of a conventional printing system that is an improvement on the configuration shown in FIG. 8.
As a means of solving the problems of both types of printer drivers, providing a spool sub-system composed of a storage apparatus 8031 for storing the generated intermediate data and a de-spooler 8032 while giving the printer driver 2005′ a spooling capability as shown in FIG. 9 has been proposed.
In such a system, a page of intermediate data generated by the printer driver 2005′ is held in the storage apparatus 8031, which is analyzed by the de-spooler 8032. Complex pages are drawn and converted into image data, with the results being bundled up by the print command so as to generate print data (the same process as with an image mode printer driver). By performing this process it is possible to reduce the processing load on the printing apparatus, but because the data must be spooled once for the intermediate data analysis, the time it takes until the first page is printed in particular is longer than when no spooling is involved.